home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Technology Seed / ADC Seed CD - July 1999.toast / Carbon SDK 1.0d10c3 / Sample Code / AppearanceSample / NewButtonPane.cp < prev    next >
Encoding:
Text File  |  1999-05-01  |  2.9 KB  |  114 lines  |  [TEXT/CWIE]

  1. /*
  2.     File:        NewButtonPane.cp
  3.  
  4.     Contains:    Code to demonstrate new button types available with Appearance.
  5.  
  6.     Version:    Appearance 1.0 SDK
  7.  
  8.     Copyright:    © 1997 by Apple Computer, Inc., all rights reserved.
  9.  
  10.     File Ownership:
  11.  
  12.         DRI:                Edward Voas
  13.  
  14.         Other Contact:        7 of 9, Borg Collective
  15.  
  16.         Technology:            OS Technologies Group
  17.  
  18.     Writers:
  19.  
  20.         (edv)    Ed Voas
  21.  
  22.     Change History (most recent first):
  23.  
  24.          <2>    10/28/97    edv        Use RadioGroup control!
  25.          <1>     9/11/97    edv        First checked in.
  26. */
  27.  
  28. #include "AppearanceSamplePrefix.h"
  29.  
  30. #include <Appearance.h>
  31. #include "NewButtonPane.h"
  32. #include "AppearanceHelpers.h"
  33. #include "UDialogUtils.h"
  34.  
  35. enum
  36. {
  37.     kBevel1            = 1,
  38.     kToRightBevel    = 2,
  39.     kBelowBevel     = 3,
  40.     kAboveBevel        = 4,
  41.     kToLeftBevel    = 5,
  42.     kMenuBevel        = 8,
  43.     kMultiMenuBevel    = 9,
  44.     kBevelGroup        = 18,
  45.     kLeftJustBevel    = 19,
  46.     kCenterJustBevel= 20,
  47.     kRightJustBevel = 21,
  48.     kFullJustBevel    = 22
  49. };
  50.  
  51. #define MIN( a, b )        ( ( (a) < (b) ) ? (a) : (b) )
  52. #define MAX( a, b )        ( ( (a) > (b) ) ? (a) : (b) )
  53.  
  54. NewButtonPane::NewButtonPane( DialogPtr dialog, SInt16 items ) : MegaPane( dialog, items )
  55. {
  56.     ControlHandle        control;
  57.     Boolean                kTrue = true;
  58.     SInt32                delay = 30;
  59.     
  60.     AppendDialogItemList( dialog, 6006, overlayDITL );
  61.     
  62.     GetDialogItemAsControl( dialog, fOrigItems + kToRightBevel, &control );
  63.     SetBevelButtonTextPlacement( control, kControlBevelButtonPlaceToRightOfGraphic );
  64.  
  65.     GetDialogItemAsControl( dialog, fOrigItems + kBelowBevel, &control );
  66.     SetBevelButtonTextPlacement( control, kControlBevelButtonPlaceBelowGraphic );
  67.  
  68.     GetDialogItemAsControl( dialog, fOrigItems + kAboveBevel, &control );
  69.     SetBevelButtonTextPlacement( control, kControlBevelButtonPlaceAboveGraphic );
  70.  
  71.     GetDialogItemAsControl( dialog, fOrigItems + kToLeftBevel, &control );
  72.     SetBevelButtonTextPlacement( control, kControlBevelButtonPlaceToLeftOfGraphic );
  73.  
  74.     GetDialogItemAsControl( dialog, fOrigItems + kMenuBevel, &control );
  75.     SetBevelButtonTextAlignment( control, kControlBevelButtonAlignTextFlushLeft, 3 );
  76.     SetControlData( control, 0, 'pglc', sizeof( kTrue ), (Ptr)&kTrue );
  77.  
  78.     GetDialogItemAsControl( dialog, fOrigItems + kMultiMenuBevel, &control );
  79.     SetBevelButtonTextAlignment( control, kControlBevelButtonAlignTextFlushLeft, 3 );
  80.     SetControlData( control, 0, 'pglc', sizeof( kTrue ), (Ptr)&kTrue );
  81.  
  82.     GetDialogItemAsControl( dialog, fOrigItems + kMultiMenuBevel, &control );
  83.     SetControlData( control, 0, kControlBevelButtonMenuDelayTag, sizeof( SInt32 ), (Ptr)&delay );
  84.     
  85.     InsertMenu( GetMenu( 147 ), -1 );
  86. }
  87.  
  88. NewButtonPane::~NewButtonPane()
  89. {
  90.     ShortenDITL( fDialog, CountDITL( fDialog ) - fOrigItems );
  91. }
  92.  
  93. void
  94. NewButtonPane::ItemHit( SInt16 item )
  95. {
  96.     SInt16            localItem;
  97.     
  98.     localItem = item - fOrigItems;
  99.     
  100.     switch ( localItem )
  101.     {
  102.         case kMultiMenuBevel:
  103.             {
  104.                 ControlHandle    control;
  105.                 Size            realSize;
  106.                 SInt16            menuID;
  107.                 
  108.                 GetDialogItemAsControl( fDialog, fOrigItems + kMultiMenuBevel, &control );
  109.                 GetControlData( control, 0, kControlBevelButtonLastMenuTag, sizeof( menuID ), (Ptr)&menuID, &realSize );
  110.             }
  111.             break;
  112.     }
  113. }
  114.